package cn.honqun.tinycms.common.dto;

import cn.hutool.core.util.StrUtil;
import lombok.Getter;

import java.io.Serializable;

/**
 * 所有Controller的响应数据
 */
@Getter
public class ReturnObject implements Serializable {
    private static final long serialVersionUID = -4978160361202426240L;

    private Boolean success = true;
    private String message;
    private Object data;

    private ReturnObject() {
        super();
    }

    /**
     * 创建一个新的ReturnObject, 并设置状态“success”为{@code true}
     */
    public static ReturnObject success() {
        ReturnObject returnObject = new ReturnObject();
        returnObject.success = true;
        return returnObject;
    }

    /**
     * 创建一个新的ReturnObject, 并设置状态“success”为{@code false}
     */
    public static ReturnObject error() {
        ReturnObject returnObject = new ReturnObject();
        returnObject.success = false;
        return returnObject;
    }

    /**
     * 设置{@code ReturnObject}的data属性，这个属性的数据通常是成功处理请求之后的结果。
     */
    public ReturnObject data(Object data) {
        this.data = data;
        return this;
    }

    /**
     * 设置失败或者成功的相关信息文本
     */
    public ReturnObject message(String message) {
        this.message = message;
        return this;
    }
}